#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<math.h>
using namespace std;

//超时
// class Solution {
// public:
//     bool judgeSquareSum(int c) {
//         double T = sqrt(c);
//         for(int a = 0;a<=T;++a){
//             for(int b =0;b<=T;++b){
//                 if(pow(a,2)+pow(b,2)==c){
//                     return true;
//                 }
//             }
//         }
//         return false;
//     }
// };

class Solution {
public:
    bool judgeSquareSum(int c) {
        //双指针实现
        int a = 0;
        int b = sqrt(c);
        while(a<=b){
            int curr = a*a+b*b;
            if(curr==c){
                return true;
            }
            else if(curr<c){
                a++;
            }
            else{
                b--;
            }
        }
        return false;
        
    }
};

int main(){
    // int c = 5;
    Solution S;
    cout<<S.judgeSquareSum(2147482647)<<endl;

}